<?php

namespace app\snpdetection\controller;

use think\Controller;
use app\common\commonClass\PageTools;


class Index extends Controller
{
    public function index()
    {
        $this->assign('nav', PageTools::nav((config('nav_items')), 'HOME'));
        return $this->fetch();
    }

    public function getAllele()
    {
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file();
// 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
            $info = $file['file']->move(ROOT_PATH . 'public' . DS . 'uploads');
            $path='uploads/'.$info->getSaveName();
        }else{
            return 'meiyou';
        }
        $arr_data = read_excel($path);
        //获取样品数据
        $arr_allele=[
            'rs671'=>[
                'Allele 1'=>'AA',
                'Allele 2'=>'GG',
                'Heterozygous'=>'AG'
            ],
            'rs1229984'=>[
                'Allele 1'=>'TT',
                'Allele 2'=>'CC',
                'Heterozygous'=>'CT'
            ]
        ];
        foreach ($arr_data as $row) {
//            var_dump($row);
            if (preg_match('/\-/',$row['D'])){
                $arr=preg_split('/\-/',$row['D']);
                $sampleID=$arr[0];
                $marker=$arr[1];
                $data[$sampleID]['sampleID']=$sampleID;
                $data[$sampleID][$marker]=$arr_allele[$marker][$row['E']];
            }
        }
        return $data;
    }

    public function makeReport($sampleid,$rs671,$rs1229984)
    {
        $arr_reaction=[
            '长期过量饮酒易导致酒精性肝病。',
            '易嗜酒，大量饮酒时易醉酒，若长期酗酒产生酒精肝、中毒性脑损伤等慢性疾病的风险高。',
            '易发生脸红、恶心、呕吐等现象，且大量饮酒发生晕醉风险高，若长期酗酒产生酒精肝、中毒性脑损伤等慢性疾病的风险高。',
            '饮酒过程极易发生脸红、恶心、呕吐等乙醛中毒表现，若超量饮酒极易诱发神经系统异常，甚至发生昏迷及休克，此外还可发生心脏病等急性中毒现象，强行饮酒甚至有导致死亡风险。'
        ];
        $arr_rs671=[
            'GG'=>'受检者ALDH2酶活性强，乙醛较易代谢。（rs671 GG野生型）',
            'AG'=>'受检者ALDH2酶活性较强，乙醛较难代谢，有轻微的饮酒上脸现象。（rs671 AG突变杂合子）',
            'AA'=>'受检者ALDH2酶活性弱，乙醛难以代谢，有饮酒上脸现象。（rs671 AA突变纯合子）'
        ];
        $arr_rs1229984=[
            'TT'=>'受检者ADH1B酶活性强，饮酒后机体内乙醛浓度急剧增加，乙醛若无法及时代谢，导致酒精对机体的损伤加剧，易发生酒精中毒和酒精依赖性。（rs1229984  TT型 突变纯合子）',
            'CT'=>'受检者ADH1B酶活性较强，机体内乙醛浓度容易增加，从而导致酒精对机体的损伤加剧，易发生酒精中毒和酒精依赖性。（rs1229984  CT型 突变杂合子）',
            'CC'=>'受检者ADH1B酶活性弱，饮酒后酒精不易代谢为乙醛，机体容易囤积酒精难以代谢，易发生酒精中毒。（rs1229984  CC型 野生型）'
        ];
        $arr_ability=[
            '很强','较强','一般','较差'
        ];
        $arr_result=[
            'GG+TT'=>[
                'ability'=>$arr_ability[0],
                'reaction'=>$arr_reaction[0]
            ],
            'GG+TC'=>[
                'ability'=>$arr_ability[1],
                'reaction'=>$arr_reaction[1]
            ],
            'GG+CC'=>[
                'ability'=>$arr_ability[1],
                'reaction'=>$arr_reaction[1]
            ],
            'AG+CC'=>[
                'ability'=>$arr_ability[2],
                'reaction'=>$arr_reaction[2]
            ],
            'AA+CC'=>[
                'ability'=>$arr_ability[2],
                'reaction'=>$arr_reaction[2]
            ],
            'AG+CT'=>[
                'ability'=>$arr_ability[3],
                'reaction'=>$arr_reaction[3]
            ],
            'AA+CT'=>[
                'ability'=>$arr_ability[3],
                'reaction'=>$arr_reaction[3]
            ],
            'AG+TT'=>[
                'ability'=>$arr_ability[3],
                'reaction'=>$arr_reaction[3]
            ],
            'AA+TT'=>[
                'ability'=>$arr_ability[3],
                'reaction'=>$arr_reaction[3]
            ],
        ];

        //替换内容
        $content['{sampleid}']=$sampleid;
        $content['{des_rs671}']=$arr_rs671[$rs671];
        $content['{des_rs1229984}']=$arr_rs1229984[$rs1229984];
        $content['{rs671}']=$rs671;
        $content['{rs1229984}']=$rs1229984;
        $content['{ability}']=$arr_result[$rs671.'+'.$rs1229984]['ability'];
        $content['{reaction}']=$arr_result[$rs671.'+'.$rs1229984]['reaction'];

        //生成报告
//        $tempPath=ROOT_PATH . 'public' . DS . 'static'. DS . 'template';
//        setTemplate($content,$sampleid.'.docx','static/template/');
        return 'ok';

    }


}